草庐IT

C++ 异常开销

全部标签

c# - .NET 中的异常处理和日志记录策略

我正在构建一个包含ASP.NETMVCWeb应用程序的多层应用程序。它由表示层、业务层、数据层等常用层组成。如何创建/使用一种体面的异常处理机制?我在PatternsandPractices上读到,您需要将异常冒泡到各个层。还有记录。记录发生在哪里?在MVC网络应用程序中?您将如何根据错误类型重定向到各种错误页面?如果你们有一些关于此的反馈和一些文章,我将不胜感激。如果有任何示例应用程序使用了不错的异常处理和日志记录策略,请告诉我:) 最佳答案 首先,我建议阅读VexingExceptions的文章“EricLippert”.这应该

c# - 如何使用 xUnit、SubSpec 和 FakeItEasy 测试抛出的异常

我正在使用xUnit、SubSpec和FakeItEasy进行单元测试。到目前为止,我已经创建了一些积极的单元测试,如下所示:"GivenaOptionspresenter".Context(()=>presenter=newOptionsPresenter(view,A.Ignored,service));"withtheInitializemethodcalledtoretrievetheoptionvalues".Do(()=>presenter.Initialize());"expecttheviewnottobenull".Observation(()=>Assert.Not

c# - 针对特定异常的单元测试异步方法

有没有人举例说明如何在Windows8Metro应用程序中对异步方法进行单元测试,以确保它抛出所需的异常?给定一个带有异步方法的类publicstaticclassAsyncMathsStatic{privateconstintDELAY=500;publicstaticasyncTaskDivide(intA,intB){awaitTask.Delay(DELAY);if(B==0)thrownewDivideByZeroException();elsereturnA/B;}}我想使用新的Async.ExpectsException结构编写一个测试方法。我试过了:-[TestMeth

c# - 使用 ParallelFor 循环时索引超出范围异常

这是一个非常奇怪的情况,首先是代码......编码privateListWorksheetToDataTableForInvoiceCTN(ExcelWorksheetexcelWorksheet,intmonth,intyear){inttotalRows=excelWorksheet.Dimension.End.Row;inttotalCols=excelWorksheet.Dimension.End.Column;DataTabledt=newDataTable(excelWorksheet.Name);//for(inti=1;i{DataRowdr=null;if(i>1){

c# - 为什么 List<double> 显式转换为 IEnumerable<object> 会抛出异常?

根据这个MSDNreferenceIEnumerable是协变的,这可以将对象列表隐式转换为可枚举对象:IEnumerablestrings=newList();IEnumerableobjects=strings;在我自己的代码中,我写了一行代码,当列表的项目类型是Point类时,它可以完美运行(Point是一个简单的类,具有三个双x、y、z属性):varobjects=(IEnumerable)dataModel.Value;//herepropertyValueisalistthatcouldbeofanytype.但是当列表的项类型为double时,上面的代码返回以下异常:Un

c# - 为什么win32异常没有被c#异常处理机制捕获

我有一个winforms应用程序。Winforms从Program.cs开始,我们在其中定义了main()。我已将这段代码放在try-catchblock中。[STAThread]staticvoidMain(){try{Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newfrmSplash());}catch(Exceptionex){MessageBox.Show(ex.Message);if(ex.InnerExceptio

c# - 如何运行多个任务,处理异常并仍然返回结果

我正在更新我的并发技能。我的问题似乎相当普遍:从多个Uris读取、解析和处理结果等。我有ConcurrencyinC#Cookbook.有几个使用GetStringAsync的示例,例如staticasyncTaskDownloadAllAsync(IEnumerableurls){varhttpClient=newHttpClient();vardownloads=urls.Select(url=>httpClient.GetStringAsync(url));Task[]downloadTasks=downloads.ToArray();string[]htmlPages=awai

c# - 如何解决 Entity Framework 提供程序异常

我已将我的WCF项目发布到服务器上,我还将MVC应用程序发布到使用WCF服务的同一个盒子上。尝试登录我的MVC应用程序时,这使用了wcf服务,但我在浏览器上遇到了这个异常,TheEntityFrameworkprovidertype'System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer'registeredintheapplicationconfigfilefortheADO.NETproviderwithinvariantname'System.Data.SqlClient'couldno

c# - "Bad key"带有可导出私钥的证书异常

我正在尝试使用非对称加密对文件进行加密和解密。我已经使用makecert创建了一个测试证书并将其安装到我的个人本地机器商店中。将来我必须在多台服务器上安装此证书,这就是我使用“-pe”标志创建它的原因,即使用可导出的私钥。证书已成功创建和安装,我在mmc中看到“您有一个与此证书相对应的私钥”提示。现在我正尝试在.NET3.5中使用RSACryptoServiceProvider加密数据。它成功了。但是当我试图解密它时,出现“Badkey”异常。如果我创建的证书没有“-pe”选项,则相同的代码可以很好地解密。这是代码:RSArsaKey=(RSA)myCertificate.Privat

c# - 从线程向主线程发送异常?

我想将当前线程(该线程不是主线程)的异常传递给主线程。为什么?因为我在另一个线程中检查我的硬锁(该线程使用计时器进行检查),当HardLock不可访问或无效时,我创建了一个由我自己定义的异常,然后抛出该异常。所以那个异常(exception)不能很好地工作。;( 最佳答案 最好的办法是将Thread替换为Task(.NET4.0中的新功能)。Task类处理将异常正确编码到任何检查任务结果的线程。如果无法使用.NET4.0,则Rxextensions中的CoreEx.dll包含一个Exception.PrepareForRethrow